home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Topik / Topik - Disk 39 - Educational (19xx)(Topik Public Domain)(PD)[WB].zip / Topik - Disk 39 - Educational (19xx)(Topik Public Domain)(PD)[WB].adf / Planets / caldat.c < prev    next >
C/C++ Source or Header  |  1991-03-09  |  549b  |  28 lines

  1. #include <math.h>
  2.  
  3. #define IGREG 2299161
  4.  
  5. void caldat(julian, mm, id, iyyy)
  6. long julian;
  7. int *mm, *id, *iyyy;
  8. {
  9.     long ja, jalpha, jb, jc, jd, je;
  10.  
  11.     if (julian >= IGREG) {
  12.         jalpha = ((float) (julian-1867216) -0.25)/36524.25;
  13.         ja = julian+1+jalpha-(long) (0.25*jalpha);
  14.     } else
  15.         ja = julian;
  16.     jb = ja+1524;
  17.     jc = 6680.0+((float) (jb-2439870)-122.1)/365.25;
  18.     jd = 365*jc+(0.25*jc);
  19.     je = (jb-jd)/30.6001;
  20.     *id = jb-jd-(int) (30.6001*je);
  21.     *mm = je-1;
  22.     if (*mm > 12) *mm -= 12;
  23.     *iyyy = jc-4715;
  24.     if(*mm > 2) --(*iyyy);
  25.     if(*iyyy <= 0) --(*iyyy);
  26. }
  27.  
  28.